第7章 数据管理
7.1 数据表处理
7.1.1 数据表详情
数据表作为数据看板构建的底层支撑结构,构成了数据可视化全流程的基石型组件。其核心价值体现在三个维度:首先,作为结构化数据存储与管理的载体,确保原始数据在采集、转换、加载(ETL)过程中的完整性与一致性,为可视化呈现构建可靠的数据基础;其次,通过数据表与数据源的实时连接,提供动态更新的关键指标数据,为决策层提供具有时效性的信息支撑;最后,基于Focus Search中执行的多维数据的关联与计算(如分组聚合、时间序列对比分析等),将计算结果以中间表的形式进行存储。
因此,DataFocus内置专属的数据表管理模块,可以查询和管理DataFocus系统内的全部数据表。在数据表管理界面,可以执行数据表的导入、中间表的创建、视图的创建以及数据表字段详情等,同时还可以根据数据表不同的导入或创建类型进行区分筛选,如图7-1。

图7-1 数据表管理模块
将鼠标移至任一具体的数据表,点击“详情”可以进入数据表的详情页面。表格标题名称、表格描述、列名和列描述都可以在当前页面直接点击修改,如图7-2所示。

图7-2 修改表名和描述信息
- 列信息
在列信息中可以看到该表中每列的具体情况,包括显示名称、数据类型、描述、列类型、聚合、数据格式、地域类型、同义词、索引类型、优先级和操作,如所示。
●显示名称:该列在搜索模块中的显示名称。
●数据类型:列的数据类型,在导入时配置固定,不可修改。
●描述:对列字段的描述,可以根据自身需求添加。
●列类型:列类型分为属性列和度量列两种,属性列一般作为X轴和图例使用,度量列作为Y轴使用。只有度量列可以修改为属性列使用。
●聚合:列的默认聚合方式,只有度量列有。聚合方式有总和、最小值、最大值、平均值、标准差、方差、总数、去重总数八种聚合方式,一般默认为总和,也可以选择不进行聚合。用户可以在数据表列信息中进行修改,同样也可以在进行搜索时利用设置和关键词临时修改。
●数据格式:当前列的显示格式,区分文本类、数值类和时间类。文本类可显示为文本、图片和链接地址;数值类可修改格式,显示为数字、货币、百分比、财务等,如图7-3;时间类可修改日期格式,如图7-4。

图7-3 修改数值数据格式

图7-4 修改时间数据格式
●地域类型:配置地理列,属性列可将对应的列配置为国家集合、国家、省集合、省、市集合、市等,度量列可将对应的地域类型配置为经度、维度。要求列符合为地理列的格式与值。
●同义词:列的同义名称,可以在搜索中作为列显示名称的代用,效果和显示名称一致。
●索引类型:选择该列建模方式。属性列默认参与索引,度量列默认不索引且无法修改。
●优先级:当搜索框内输入一个过滤条件时,返回结果会出现聚合后的数值列,优先级越高,则优先显示数值列结果,优先级100为最高。
●操作:数据表的一些其他操作。属性列有四个操作,分别是数据概况、血缘关系、创建分组公式和掩码,度量列则只有前3个,不具备掩码操作。
将鼠标移至属性列的数据概况,可以查看当前属性列去重后的总数、空值数量、数据完整度以及数据重复率,如图7-5;移至度量列,则同样可以查看当前度量列的基础数据,包括最小值、最大值、均值、方差等,如图7-6,并且可以对当前度量的数据分布进行预览。通过查看数据预览界面呈现的统计特征与非空值校验等,可快速建立对数据集维度结构、变量类型及数值范围的立体化认知,为后续分析提供可靠的依据。

图7-5 属性列数据概况

图7-6 度量列数据概况
通过血缘关系图可以查看数据从哪里来,一般是公式列才需要查看血缘关系,如图7-7。

图7-7 血缘关系
通过创建分组公式可以勾选当前列中多个列中值然后点击分组,并为分组后的数据修改一个组名,这个组名会成为新列的列中值,通过点击“查看分组列中值”了解当前数据列下的列中值情况,如图7-8。

图7-8 创建分组
掩码功能主要是针对一些比较隐私的信息,例如身份证号、电话号码、姓名等,可以通过掩码掩其中部分字符,提高数据的安全性,如图7-9。

图7-9 掩码配置
针对本地导入的数据,DataFocus支持覆盖上传和累加上传两种数据更新方式。仍旧是在数据“详情”页面中进行操作,点击右上角“操作”——“覆盖上传”,如图7-10,输入数据表相关信息,这里和导入数据表的步骤相同,输入完毕后点击确认即可覆盖原来导入的数据表,需要注意的是表结构需要与原表完全相同才可以进行覆盖。
累加上传的操作与覆盖上传步骤相同,如图7-11,并且表结构也需要与原表保持一致,上传成功后在原表的基础上数据将会进行累加。

图7-10 覆盖上传

图7-11 累加上传对话框
- 关联关系
点击关联关系可以为当前表格添加多表关联,实现数据的跨表查询,如图7-12,具体的关联操作参考1.3多表关联。还可以通过点击“查看所有关联关系”查询当前系统内所有表格之间的关联情况,如图7-13。

图7-12 关联关系

图7-13 查看所有关联关系
- 预览数据
点击预览数据,可以随机预览当前数据表中的30条数据,还可以了解数据表的总记录条数,如图7-14。

图7-14 预览数据
- 依赖关系
点击依赖关系可以查看当前表的依赖对象,也就是依赖当前表所创建的全部数据看板和历史问答,如果当前表是中间表,则还会展示出当前中间表的数据来源,如图7-15。

图7-15 依赖关系
- 搜索拓展
搜索配置在第4章探索性数据分析里全部介绍过,可以直接跳转4.3.3搜索拓展进行查看。
7.1.2 创建中间表
中间表是DataFocus系统进行复杂数据处理的主要方法,对源数据工作表进行二次加工后可得到中间表,目前系统重有三种不同的中间表,分别是问答中间表、关联中间表和合并中间表,问答中间表是在搜索页面生成的中间表,关联中间表和合并中间表是在资源管理页面生成的中间表。
问答中间表是在搜索页面生成的中间表,比如用户在搜索过程中对数据进行了分析整理和计算,最终得到一张图表,如图7-16所示,并且想将这张表的数据保存下来做进一步的分析,此时就可以直接在搜索页面的“…”操作项中找到“保存为中间表”,将当前表的数据保存为中间表。

图7-16 保存问答中间表
在弹出的保存对话框中可以对该中间表进行命名,同时可以点击中间表列处的列名进行修改,如图7-17,修改完成后,点击“确定”即可将当前数据保存为问答中间表。保存完成,可以点击“跳转到项目中查看”,系统会自动跳转到资源管理模块。

图7-17 问答中间表修改表名和列名
在资源管理模块中可以看到,中间表的创建需要一定的时间,中间表刚创建的时候,会标识为“正在创建中间表”,如图7-18,此时处于创建过程中的中间表是不可用的,需要等中间表创建完成后,才会可以作为一张类型为“问答中间表”的数据表在数据源中选择使用。

图7-18 中间表创建中
只有当前中间表的拥有者与登录者账号一致时,才可以对创建的中间表进行编辑。如果有特殊情况需要修改所有者为其他账号的中间表时,可以临时将中间表的所有者修改为当前登录账号,如图7-19,然后再进行编辑。具体操作一样是,进入数据表详情,点击操作,可以看到“编辑中间表”,如图7-20。

图7-19 中间表拥有者

图7-20 编辑中间表
第二种方式是在“数据表管理”模块中点击“创建中间表”——“关联中间表”,如图7-21,进入类似搜索模块的中间表创建页面,在这里需要先选择数据表和数据表中的各个字段,同时通过增加公式创建新列,来构建所需要的中间表,如图7-22。

图7-21 创建关联中间表

图7-22 中间表添加字段
字段添加完成后,点击“中间表名”对该中间表进行命名,点击“中间表列名”下方可以修改显示的列名,如图7-23。若是使用2张或2张以上的数据表来创建中间表,则需在“我的关联关系”中构建选中的所有表之间的关联关系。若是选择的表在数据表管理中已建立关联关系,那么点击“我的关联关系”会直接显示选中表早前建立的关联关系,如图7-24。用多表创建中间表,表与表之间必须要建立关联关系。创建完成后点击确定,就可以像问答中间表时一样在资源管理页面找到它了,不同之处在于表的类型为“关联中间表”。同样的,中间表的所有者和当前账号一致的情况下,可以进行编辑中间表。

图7-23 关联中间表修改表名列名

图7-24 我的关联关系
第三种方式是在“数据表管理”模块中点击“创建中间表”——“合并中间表”,进入合并中间表创建页面,一样需要先选择数据表和数据表中需要合并的字段,来构建所需要的中间表,如图7-25。

图7-25 合并中间表创建页面
合并中间表的功能与数据表的累加上传类似,实现的都是多张数据表之间的上下合并。但合并中间表与累加上传的差异是,合并中间表不需要数据表的字段名、表结构的严格一致,列名之间的匹配如果有差异,可以通过拖拽进行替换,如图7-26。但需要注意的是,需要合并的列类型必须匹配,不能将属性列和度量列进行合并;其次合并列不允许存在空值,也就是说待合并的多个数据表合并时用的字段数量必须一致,如图7-27。

图7-26 拖拽替换字段

图7-27合并中间表注意点
字段添加完成后,在“请输入中间表名”处,为该中间表进行命名,点击最上方一列的列名可以修改显示列名,创建完成后点击确定,同样可以在资源管理页面找到中间表,表的类型为“合并中间表”,如图7-28。

图7-28 三种不同的中间表
那么你可能会问:问答中间表和合并中间表这两种表的类型为什么是不同的?除了操作不同,它们有什么本质的不同呢?
DataFocus系统在搜索分析时是会对数据进行聚合的,比如数据源表中有两条名称相同的商品的销售记录,它们有不同的销售数量,当用户只按商品名称进行搜索分析时,出现的数据结果是一条商品记录,其销售数量为数据源表中两条记录的销售数量的总和,这里发生了一次聚合。而关联中间表创建过程中是没有聚合的,就依然还是两条记录。
7.1.3 创建视图
除了上面讲述的中间表,如果遇到一些复杂的情况,通过公式和搜索无法获取所需的数据,则可以通过创建视图,通过撰写SQL语句,实现中间表的创建与保存。
在“数据表管理”模块中点击“创建视图”,在弹出的视图页面,左侧是系统中存在的所有数据表,在页面正上方输入SQL语句,点击“执行”,即可在页面正下方出现对应的数据预览,如图7-29和图7-30。

图7-29 创建视图

图7-30销售额排名前10的视图中间表预览
需要注意的是,视图中SQL的语法是trino sql,符合ANSI SQL标准。这里例举一段最简单的SQL语句:
SELECT "订单单号", "订单日期", "销售金额" FROM "电商销售数据"
数据预览无误后,点击保存,则会弹出视图保存对话框,如图7-31。在此处,对当前创建的视图中间表进行命名,配置导入方式,修改视图列名(非必选)后,即可完成视图中间表的创建,如图7-32。

图7-31 视图保存

图7-32 视图中间表创建完成
7.2 数据治理
7.2.1 数据资产目录
数据资产目录提供了对数据源的集中管理和展示。左侧是数据源列表,展示了数据源中数据表、数据列基本信息。右侧则为数据血缘关系图,展示了数据之间的关联关系和流动路径,快速理解数据的来源和去向,以及它们是如何被整合和使用的,如图7-33。

图7-33 资产目录
左侧的数据源列表可展开至数据表及数据表的字段。双击左侧列表,右侧显示对应的关联数据表。例如双击草料二维码数据源,右侧默认显示该数据源的关联表的血缘图,如图7-34。

图7-34 查看数据源
点击右侧数据源的展开按钮,即可展开显示该数据源的游离表,如图7-35。

图7-35 展开游离表
点击数据表字段下的“更多”按钮,即可显示该表的所有字段和数据类型,如图7-36。

图7-36 展示所有数据列
鼠标悬浮于两表之间的关联图标上,将高亮显示当前数据表的关联关系。而点击该关联图标,将在弹窗中显示关联关系详细信息图7-37。

图7-37 查看关联关系
滑动鼠标中建可对血缘图进行缩放,按住鼠标左键或中建可拖动血缘图。点击右下角的缩略图按钮,即可单击缩略图快速跳转对应的血缘图位置。点击右下角的重置按钮,即可返回默认位置,如图7-38。

图7-38 缩略图
7.1.1 数据资产全景
数据资产全景功能为用户提供了组织数据资产的全面视图。该功能整合了磁盘空间占用、数据表数量、问答数、看板数等多个关键指标,使用户能够清晰地了解当前数据资产的整体状况。通过数据资产全景,用户可以监控和报告磁盘空间的使用情况,了解存储资源的分配和利用效率,如图7-39。

图7-39 数据资产全景
7.1.2 数据服务 API
数据服务API是一种强大的工具,它允许外部系统或应用程序与DataFocus平台无缝进行数据交互。通过这一功能,不同的系统间可以实现高效集成,从而使开发者能够构建高度定制化的应用程序或自动化工作流,极大增强了DataFocus解决方案的功能性和灵活性。DataFocus提供了一整套详尽的数据服务API规范,覆盖了认证机制、请求与响应的格式化要求,以及错误处理的最佳实践等内容,旨在帮助开发人员轻松地将DataFocus的功能集成到他们自己的项目中,提高数据处理的效率和效果。
新增数据API,填写必要的信息,如图7-40。
API名称:为你的新API起个名字。
数据表名:选择你想通过API提供的数据表。
所属服务分组:选择将此API归入哪个分组。
服务状态:控制 API服务的停用和启用。

图7-40 新增数据API
用户可以在数据服务API列表中点击需要调用的数据服务API的详情查看数据服务API的调用地址以及对应表结构信息。同时可以看的对应的分组信息,没有配置过分组的数据服务API或者处于offline状态的数据服务API是不能调用的,如图7-41。

图7-41 API详情
服务分组是数据服务API的高级管理模块,支持通过多鉴权配置和批量API关联实现精细化权限控制。点击“新增分组”按钮,输入名称和描述;选择SecretId&SecretKey:通过多选控件批量关联系统管理模块创建的第三方接口鉴权,任何一个该分组所关联的SecretId&SecretKey都可以访问该数据服务API;关联API服务:通过多选控件批量关联已有API,或后续在分组详情页动态添加,如图7-42。

图7-42 新增分组
每个SecretId/SecretKey对本质上是一个加密鉴权凭证,服务分组是建立凭证与API服务的对应关系。当API网关处理请求时,先检验凭证是否有效,有效后再根据服务分组判断当前凭证可以使用哪些API服务(一般是直接请求该服务)。如果当前凭证有权限使用请求的API服务,则验证通过API服务响应请求。
本章小结
本章围绕DataFocus系统的数据管理与治理体系展开,构建了从基础存储到高级应用的完整框架。在数据管理层面,以数据表为核心支撑,支持动态更新、复杂计算及多类型中间表(问答/关联/合并)的创建,配合SQL视图功能满足深度加工需求。治理体系则通过资产目录实现数据源集中管控与血缘追踪,全景视图监控存储与资源效能,并开放API服务接口推动跨系统数据集成,形成存储、加工、管控与开放的全链路解决方案。
课后习题
1.根据示例,创建关联中间表《教材_用户行为分析》;